Para explicarlo mejor, se puede imaginar que tengo un conjunto de módulos de JavaScript que se activan desde un módulo inicial, que se importa a un componente Angular.
Lo que he probado:
Estoy usando "type" : "module" en el archivo package.json y he declarado todos los scripts como módulos en un archivo de tipificación, también los he declarado bajo scripts en angular.json. Llegué a configurar los scripts como módulos en index.html, pero aún recibo el "Error de sintaxis no detectado: no se puede usar la declaración de importación fuera de un módulo".
Cuando ocurre el error:
El error proviene de la primera instrucción de importación desde el módulo de JavaScript inicial, por ejemplo, la línea 1.
La declaración de importación simplemente se ve así desde el módulo JavaScript inicial, con declaraciones posteriores a otras secuencias de comandos, todo lo cual desencadenará el mismo problema.
import * as objParser from './scripts/objParser.js'
Puedo confirmar que el problema no es la lógica del código, ya que el código realmente funciona en modo de desarrollo, pero, por supuesto, no puedo ejecutarlo como un paquete de producción.
¿Quizás el problema?
Mi idea es que Angular no está validando estos archivos JavaScript como módulos, ya que no utilizan la importación dentro de la base de código de Angular. ¿Algunas ideas?
use const objParser = require('./scripts/objParser.js'); .
Puede crear un archivo index.ts en su carpeta de scripts que le permitirá importar todos los módulos de ese archivo.
los agregas a index.ts como
export * from './scripts/objParser.js';entonces podrías importar como
import { ObjParser } from './scripts'si no es compatible, podría deberse a que no son bibliotecas mecanografiadas.